1. Field of the Invention
The present invention relates to a communication apparatus, communication method and a computer readable medium.
2. Related Art
RTP (Real-Time Transport Protocol) is a transmission protocol capable of including additional information such as a reception sequence, reception timing necessary for real-time streaming which is not transmitted by UDP (User Datagram Protocol) alone along with each transmission data packet, and is a transmission protocol that executes reception processing based on the additional information at the time of reception and can receive necessary data at necessary timing in the same condition as that at the time of transmission. RTP allows the receiving side to correct sequence errors and variations in transmission intervals among packets which occur on the Internet and discard extremely delayed packets and detect lost packets.
On the other hand, since RTP is a transmission protocol based on UDP which is a higher protocol inheriting the original best-effort characteristic of IP (Internet Protocol) which is a transmission protocol making up the Internet and since RTP alone provides no measures for loss of transmission data, it is necessary to complement data loss by additional way and retransmission control and error correction exist as techniques for this purpose.
FEC (Forward Error Correction) or the like is generally known as a specific technique of error correction.
According to FEC, the transmitting side groups original data, carries out calculations using a predetermined technique, thereby generates redundant data for each group and transmits the redundant data in parallel with data of each group. When part of data is lost within each group, on the receiving side the lost data can be recovered by carrying out calculations from the received remaining data and redundant data using a predetermined technique.
There is a scheme defined by RFC2733 as an FEC scheme applicable to RTP.
Conventional RFC2733-based FEC for RTP is designed targeted at extremely rare packet loss on a network which is considered to have high quality in the first place and is known to have a problem that its resistance to consecutive burst losses is weak. This is because its achievable recovery performance is limited to those calculable among 24 consecutive packets and if exclusive OR is adopted as the calculation technique, recovery is limited to loss of one packet at most and attempting to realize higher recovery performance increases the degree of redundancy, resulting in an increased bandwidth and this is not realistic. Therefore, the conventional FEC scheme is effective only for discrete losses but the conventional FEC scheme has no effect on burst losses which are known to frequently occur on the Internet. On the other hand, burst losses which cannot be handled by conventional FEC are considered to require handling through retransmission using a scheme such as ARQ (Automatic Repeat reQuest) rather than extremely increasing the degree of redundancy. However, ARQ has various problems such as instability of communication bandwidth used and excessive increase of delays and involves considerable side effects in real-time streaming transmission.
However, when real-time streaming transmission results in a high bit rate, this means that the number of packets transmitted within a unit time increases and when the time during which trouble occurs is the same, the number of packets affected within the unit time is one at most in the case of a low bit rate, whereas a plurality of packets are affected in the case of a high bit rate and the number of burst losses may increase consequently. Therefore, even on a network of high quality to a certain degree, losses which have been discrete so far tend to turn into burst losses and techniques for increasing the number of bursts that can be coped with by FEC have been proposed so as to make FEC applicable to such a case, too.
One such technique is an FEC scheme accompanied by matrix formation adopted also in a Pro-MPEG (Moving Picture Experts Group) scheme. This is a scheme in which when forming an FEC group, a plurality of packets to be calculated are arranged in a square form and grouped on rows and columns. Since rows are aligned in the packet sequence, columns perpendicular to the sequence are equivalent to discretely selected ones, and even when packets are lost in a burst-like fashion on rows, a calculation group to which each packet belongs differs from each other, and therefore calculations can be carried out for each column and when only a single row is lost, the loss can be handled as a discrete loss when viewed from the column. In this way, the matrix formation can simply, efficiently and explicitly realize packet rearrangement (interleaving) which is considered to be effective for burst loss and changing the vertical/horizontal length of the matrix can flexibly change error resistance of FEC.
Furthermore, when losses cannot be recovered by only calculations on the column group, more losses can be handled by combining the recovery on the column group with the recovery through calculations on the row group and repeating calculations on columns and rows.
In this way, the matrix formation allows resistance to burst losses which is considered to be a weak point in the conventional FEC scheme to be reinforced.
Incidentally, as references in the background, there are J. Rosenberg et al., “RFC2733 An RTP Payload Format for Generic Forward Error Correction” IETF, December 1999 and “Pro-MPEG Code of Practice #3 release 2”, Pro-MPEG Forum, July 2004
However, since the FEC scheme of RTP considers that it is all right to start recovery processing when a packet loss is detected, when a burst loss occurs in the FEC scheme accompanied by matrix formation, there is a problem that the operation processing outstandingly increases temporarily at the time when recovery operation occurs.
That is, when all row packets in a certain matrix are lost in a burst-like fashion, a number of packets resulting from multiplying the number of column packets by the number of row packets, that is, the number of packets corresponding to the matrix size is the number of packets to be calculated. When all packets on a row are lost in a burst-like fashion, a number of calculations are generated resulting from multiplying a value with the number of redundant packets (here one) added to a value obtained by subtracting the number of column lost packets (here one) from the number of column packets by the number of rows, and executing these calculations without disturbing the original transmission timing requires recovery processing to be carried out intensively in an extremely short time after the loss is detected.
Packet losses may occur not only by errors in transmission, but also errors in processing on the receiving side, and therefore carrying out processing temporarily in a burst-like fashion increases an influence on other processing (especially processing that follows) on the receiving side, which is not desirable. Especially, high vision class media streaming transmission, which has become feasible with improvement in equipment performance in recent years, carries out transmission at a prodigious bit rate compared to real-time streaming so far, and therefore an idle time during which reception for each packet is processed becomes minimal. Therefore, preventing errors requires the processing to be completed within this idle time and requires an extremely large amount of processing, which has a considerable influence on the overall system configuration. That is, when carrying out high bit rate streaming transmission, a recovery calculation method having little influence such as disturbance on other processing on the receiving side is necessary.